﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Soyuz.ProgramacionWCF.Dominio;
using Soyuz.ProgramacionWCF.Persistencia;

namespace Soyuz.ProgramacionWCF
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "PropuestasSYZ" en el código, en svc y en el archivo de configuración a la vez.
    public class PropuestasSYZ : IPropuestasSYZ
    {

        private ProgramacionDAO programacionDAO = null;
        private ProgramacionDAO ProgramacionDAO
        {
            get
            {
                if (programacionDAO == null)
                    programacionDAO = new ProgramacionDAO();
                return programacionDAO;
            }
        }

        public List<Programacion> ConsultarProgramaciones(DateTime fechainicial, DateTime fechafinal, string origen, string destino, int cantidad)
        {
            return ProgramacionDAO.Consultar(fechainicial, fechafinal, origen, destino, cantidad).ToList();
        }

        public List<Programacion> ListarProgramaciones()
        {
            return ProgramacionDAO.ListarTodos().ToList();
        }


        public string RegistrarReserva(string id_programacion, string dni, int asientos)
        {
            string resultado;
            Programacion programacionReservar = ProgramacionDAO.Obtener(id_programacion);
            programacionReservar.Stock = programacionReservar.Stock - asientos;
            Programacion registrado = ProgramacionDAO.Modificar(programacionReservar);
            if (registrado!=null)
                resultado="SI";
            else
                resultado = "NO";
            return resultado;

        }
    }
}
